/**
 * 响应拦截
 * @param {Object} http
 */
module.exports = (vm) => {
  uni.$u.http.interceptors.response.use(
    (response) => {
      /* 对响应成功做点什么 可使用async await 做异步操作*/
      // getResponse为true直接返回后台数据
      if (response?.config?.custom?.getResponse) {
        return response;
      }
      const data = response.data;
      if (data.code !== 0) {
        // 服务端返回的状态码不等于0，则reject()
        uni.$u.toast(data.message);
        // token过期处理
        if (data.code === 10100) {
          try {
            vm.$store.state.$userInfo = {};
            vm.$store.state.$token = "";
            uni.clearStorageSync();

            uni.switchTab({
              url: "/pages/modules/home/index",
            });
          } catch (error) {}
        }
        return data;
      } else {
        return data.data || data;
      }
    },
    (response) => {
      uni.hideLoading();
      /*  对响应错误做点什么 （code !== 200）*/
      return Promise.reject(response);
    }
  );
};
